package com.douxg.learning.db.mybatis.plus.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 攻击表
 * </p>
 *
 * @author douxiaogang
 * @since 2020-03-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("STAT_TYPE_ATTACK")
public class StatTypeAttack extends Model<StatTypeAttack> {

    private static final long serialVersionUID = 1L;

    /**
     * 日志生成时间
     */
    @TableField("CREATE_TIME")
    private LocalDateTime createTime;

    /**
     * uuid
     */
    @TableId("UU_ID")
    private Long uuId;

    /**
     * 统计总数
     */
    @TableField("TOTAL_COUNT")
    private Integer totalCount;

    /**
     * 处置动作
     */
    @TableField("ACTION")
    private Integer action;

    /**
     * 设备IP
     */
    @TableField("DEVICE_IP")
    private String deviceIp;

    /**
     * 设备名称
     */
    @TableField("DEVICE_NAME")
    private String deviceName;

    /**
     * 设备类型
     */
    @TableField("DEVICE_TYPE")
    private String deviceType;

    /**
     * 目的IP
     */
    @TableField("DST_IP")
    private String dstIp;

    /**
     * 目的端口
     */
    @TableField("DST_PORT")
    private String dstPort;

    /**
     * 目标资产重要性标识
     */
    @TableField("DST_ASSET_KEY")
    private Integer dstAssetKey;

    /**
     * 目的国家
     */
    @TableField("DST_COUNTRY")
    private String dstCountry;

    /**
     * 目的省份
     */
    @TableField("DST_PROVINCE")
    private String dstProvince;

    /**
     * 目的城市
     */
    @TableField("DST_CITY")
    private String dstCity;

    /**
     * 目的IP经度
     */
    @TableField("DST_LONGITUDE")
    private String dstLongitude;

    /**
     * 目的IP纬度
     */
    @TableField("DST_LATITUDE")
    private String dstLatitude;

    @TableField("DST_POST")
    private Integer dstPost;

    /**
     * 目标ip关联情报对应类型
     */
    @TableField("DST_INTEL_TYPE")
    private Integer dstIntelType;

    /**
     * 目标ip关联情报对应id
     */
    @TableField("DST_INTEL_ID")
    private Integer dstIntelId;

    /**
     * 源IP
     */
    @TableField("SRC_IP")
    private String srcIp;

    /**
     * 源端口
     */
    @TableField("SRC_PORT")
    private String srcPort;

    /**
     * 源资产重要性标识
     */
    @TableField("SRC_ASSET_KEY")
    private Integer srcAssetKey;

    /**
     * 源国家
     */
    @TableField("SRC_COUNTRY")
    private String srcCountry;

    /**
     * 源省份
     */
    @TableField("SRC_PROVINCE")
    private String srcProvince;

    /**
     * 源城市
     */
    @TableField("SRC_CITY")
    private String srcCity;

    /**
     * 源IP经度
     */
    @TableField("SRC_LONGITUDE")
    private String srcLongitude;

    /**
     * 源IP纬度
     */
    @TableField("SRC_LATITUDE")
    private String srcLatitude;

    /**
     * 源ip关联情报对应类型
     */
    @TableField("SRC_INTEL_TYPE")
    private Integer srcIntelType;

    /**
     * 源ip关联情报对应id
     */
    @TableField("SRC_INTEL_ID")
    private Integer srcIntelId;

    /**
     * 日志类型
     */
    @TableField("LOG_TYPE")
    private String logType;

    /**
     * 协议
     */
    @TableField("PROTOCOL")
    private String protocol;

    /**
     * 攻击阶段(攻击链)
     */
    @TableField("ATTACK_STAGE")
    private String attackStage;

    /**
     * 风险级别
     */
    @TableField("RISK_LEVEL")
    private Integer riskLevel;

    /**
     * 一级类型
     */
    @TableField("EVENT_ONE_TYPE")
    private Integer eventOneType;

    /**
     * 二级类型
     */
    @TableField("EVENT_TWO_TYPE")
    private Integer eventTwoType;

    /**
     * 三级类型
     */
    @TableField("EVENT_THREE_TYPE")
    private Integer eventThreeType;

    /**
     * 威胁类型
     */
    @TableField("THREAT_TYPE")
    private String threatType;

    /**
     * URL
     */
    @TableField("URL")
    private String url;

    /**
     * 租户ID
     */
    @TableField("TENANT_ID")
    private Long tenantId;

    /**
     * 机构ID
     */
    @TableField("ORG_ID")
    private Long orgId;


    @Override
    protected Serializable pkVal() {
        return this.uuId;
    }

}
